iT邦幫忙

2023 iThome 鐵人賽

DAY 5
1
Modern Web

前端工程師30天 WebRTC + Firebase 視訊通話原理到實作系列 第 5

[Day5] 即時網頁通訊技術 Polling, Long Polling, WebSocket, WebRTC

  • 分享至 

  • xImage
  •  

上一篇我們探討了媒體傳輸協議RTP,現在讓我們深入研究網路通信中更多的技術和協議。在進入 WebRTC 前,需要了解 Polling、Long Polling 和 WebSocket 這三種通訊技術與 WebRTC 的差別。

Polling - 定期請求伺服器

client 用 setTimeout 或 setInterval 每隔一段時間就發 request 給 server。

  • 優點:適用於 server 穩定且有一定更新頻率的狀況
  • 缺點:這種請求方式不管 server 有沒有更新資料 client 端仍然會不斷的發請求,耗費大量傳輸資源

Long Polling - 延遲回應

Long Polling 是一種改進的 Polling 方式, client 向 server 發送 request, server 不會立即回應,直到有新的資料可用或超時才發出新的 response。

  • 優點:相較於 Polling 減少了不必要的請求
  • 缺點:等待期間沒有新數據可用,client 將不斷等待,長期佔用連線

WebSocket - 實時雙向通信

client 端與 server 端在 handshake 後,會在一條連線上達到雙向的資料傳輸,雙方可透過 WebSocket API 進行發送或接收,兩者之間就可以建立連接即時交換資訊,不用等待 client 發出請求。現今大多使用Socket.IO來實作。

  • 優點:第一次交握之後就不需要再發送 request、response
  • 缺點:若使用預設80 和 443 以外 port,可能被防火牆和代理服務器阻止。

WebRTC - 客戶端的實時通信

有別於前面三個即時通訊技術以 TCP 三次握手進行連接, WebRTC 使用 UDP 作為主要的傳輸協議,此外也不需要 client 與 server 的溝通,而是透過建立 client 端與 client 端的傳輸連線。

以小的封包進行傳輸,並且強調實時性和低延遲。同時,WebRTC 還提供了一個SDP(Session Description Protocol)協議,用於交換通信設置信息,以確保兩端能夠建立成功的連接。

  • 優點:client 到 client 的通信,無需中間服務器的干擾,減少了延遲和 server 佔用。
  • 缺點:仍須處理 NAT打洞和防火墙問題

這邊有提到關於 SDP、NAT 會再後面詳細介紹 WebRTC 時說明~

重點整理

  • Polling 通過定期向服務器發送請求來獲取更新數據。
  • Long Polling 是改進的 Polling 方式,客戶端向服務器發送請求,服務器不會立即回應,而是等待新數據可用或超時後才回復。
  • WebSocket 實現了實時雙向通信,客戶端和服務器建立一條連接,可以隨時交換信息,無需等待客戶端發出請求。
  • WebRTC 客戶端的實時通信採用了 UDP 作為主要的傳輸協議,客戶端之間建立直接連接,不需要中間服務器的干擾,強調實時性和低延遲。

下一篇會開始介紹主題 WebRTC!


上一篇
[Day4] 媒體傳輸協議 RTP
下一篇
[Day6] 介紹 WebRTC
系列文
前端工程師30天 WebRTC + Firebase 視訊通話原理到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言